Terminology:
The following terms will be used throughout the detailed description:                Baseboard management controller (BMC)—a specialized microcontroller embedded on the motherboard of many computers, especially servers. The BMC monitors parameters such as temperature, cooling fan speeds, power mode, operating system (OS) status, etc. of the sensors within a computer, and can send alerts to a system administrator via the network if any of the parameters do not stay within preset limits, indicating a potential failure of the system. There are a firmware and a revision ID included in a BMC.        Serial Attached SCSI (SAS)—a serial communication protocol for computer storage devices, a next generation enterprise level storage interface technology instead of traditional parallel SCSI.        Serial ATA (SATA)—a hard disk interface different from conventional parallel ATA (P-ATA, also called IDE). SATA is named on the basis of data transfer via serial communication instead of the parallel method found in traditional P-ATA.        Small Computer System Interface (SCSI)—a computer standard established from ANNSI (AMERICAN NATIONAL STANDARDS INSTITUTE) for transferring data between devices on internal and external computer bus, which connects a wide range of intellectual computer peripheral devices (such as hard disk drive, optical disk drive) to expanded buses.        Advanced Technology Attachment (ATA)—a standard interface for connecting storage devices such as hard disks and CDROM drives inside PC, also called parallel ATA (P-ATA) or Integrated Drive Electronics (IDE).        Peripheral Component Interconnect (PCI )—a standard local bus for connecting computer motherboard with external peripheral device.        PCI-Extended ( PCI-X) is an extended standard of PCI, which was developed jointly by IBM, HP and Compaq.        PCI-Express ( PCI-E) is a new generation PCI architecture and unlike PCI and PCI-X, which are based on 32-and 64-bit parallel buses, PCI Express uses high-speed serial link technology. PCI Express replaces legacy parallel buses with high-speed serial buses. PCI-E is supported primarily by Intel.        VPD (Vital Product Data) is the manufacturing and part information stored in a nonvolatile memory (e.g. DRAM). Typical VPD contains information such as a part number, a serial number, a product model number, maintenance level, and other information specific to the device type. Vital product data can also include user-defined information. When a system begins a POST (Power-On Self-Test) procedure, POST will show parts of the planar and system component VPD. POST will also track system component VPD on each boot to determine if each device has a valid serial number as well as to alert the user via an event log entry and visible warning message if a device has been changed or removed.        Backplane—Backplane is a circuit board that connects several connectors thereon in parallel to each other. A backplane is generally differentiated from a motherboard by the lack of on-board processing power where the CPU is on a plug-in card. Backplanes are commonly found in disk enclosures, disk arrays, and servers.        
Inventory forecasting, inventory management, and stock keeping units (SKUs) management costs are a significant burden to many computer system manufacturers. To satisfy a variety of markets and budgets, many computer system manufacturers offer a wide variety of computer systems for consumers' selection. While such variety makes personal computers available to a wider spectrum of consumers, the same product variety adds complexity to the manufacturing process which, when left unaddressed, may well result in quality and efficiency problems.
In an effort to improve efficiency and alleviate quality problems associated with the circuit board assembly process, many manufacturers have determined that it is more cost effective to settle on a few circuit board assembly “platforms”. These platforms are essentially the same, or very similar, circuit board assemblies populated with similar components, wherein the operating features of the circuit board assembly are determined by manually setting strapping devices to configure the configurable devices of the circuit board assembly. This manual setting of the strapping devices selectively configures a circuit board assembly “platform” into a particular genre of circuit board assembly (i.e., a circuit board assembly suitable for a particular use/product). In other words, the selective configuration of strapping devices provide an otherwise generic circuit board assembly with the characteristics (i.e., operating characteristics) commonly associated with a specific product. For example, on computer system motherboards, strapping devices are often used to configure a clock source to supply a particular system bus clock frequency, or to indicate bus/core ratio (i.e., the ratio of the bus clock frequency to the processor clock frequency) configuration information. Jumper blocks, dual-inline package (DIP) switches, double-pole single-throw (DPST) switches are a few examples of strapping devices which are configured to select the operating configuration on a circuit board assembly. Although the concept of the selective configuration of a generic circuit board assembly with strapping devices has indeed improved some of the efficiency problems, they have not eliminated the quality concerns and, in fact, have introduced new quality issues. For example, many of the conventional strapping devices are manually placed on the circuit board assembly in the manufacturing process, which is prone to human error. The misconfiguration of a circuit board assembly (i.e., the configuration of a strapping device which is inconsistent with the operating characteristics of a processor module) may well result in diminished performance or catastrophic failure for the consumer.
The documents, U.S. Pat. Nos. 6,101,319 and 6,434,632, disclose a method and apparatus to automatically configure the configurable devices (i.e., processor modules or clock sources) on a circuit board assembly without utilizing prior art strapping devices. Thus, they provide the upgrade of the circuit board assembly.
The US patent application, No., US 2006/0004928 A1, discloses to select features on integrated circuit devices utilizing the programmable FPD (feature permission designator), FER (feature enable register) and FCD (feature count designator) within an I/O controller (I/O controller hub, ICH). A hardware company could support multiple alternative configurable features on a single physical hardware SKU (stock keeping unit).
Prior art discloses only a mechanism to configure the configurable devices (e.g. a single chip or a processor module itself) of a circuit board and thus provide a generic circuit board assembly. However, these prior arts do not disclose how to provide a generic circuit board assembly for machine type numbers with a wide variety of feature or configuration requirements. For example, IBM xSeries™ servers have three models, respectively as ENT (ENTry model), MID (MiDrange model) and ADV (ADVanced model). ENT model includes two machine type numbers, respectively as 7973 and 7974. MID model also includes two machine type numbers, respectively as 7975 and 7976. Finally, ADV model has only one machine type number, 7977. system model has a specific list of allowed features. Each ENT model is equipped with 8 DIMMs and one Ethernet port. Each MID model is equipped with 8 DIMMs, one Ethernet port and supports SAS hard drives. Finally, ADV model is equipped with 12 DIMMs and 2 Ethernet ports and supports SAS hard drives. Besides, a BMC firmware revision ID for each model is unique, for example, BMC firmware revision IDs for ENT, MID & ADV may be respectively SPE1, SPMT & SPBT. If xSeries servers use different motherboards respectively for different models and machine type numbers, the complexity to the manufacturing process and the inventory management cost will be increased.
Known solutions provide manual jumpers for configuring (disabling) Ethernet or disk drive controller. Similarly, as the manual configuration is required, it is prone to human error.